Term of the Moment

dot-com company


Look Up Another Term


Definition: standards - machine languages


Machine language is the fundamental standard for software compatibility, because it is the language the CPU understands. All programs presented to the computer for execution must be in the machine language of that particular CPU family.

Different machine languages not only exist among different vendors but are created by the same vendor. For example, IBM's mainframe family differs from its Power Systems midrange family. When Digital Equipment introduced its new Alpha line in the early 1990s, the Alpha CPUs did not understand the machine language of their VAX predecessors. For all the major hardware platforms, see hardware platform.

After a program is written, it must be translated (assembled, compiled or interpreted) into the machine language the computer understands. In order to run in a different machine, the program must be reassembled or recompiled into a different machine language.

Starting in the late 1960s, companies seeking a chunk of the IBM mainframe market designed computers that ran the same IBM machine language. RCA's Spectra 70 was the first IBM-compatible mainframe, and companies, such as Amdahl, Itel, National Advanced Systems, Hitachi and Fujitsu introduced IBM-compatible mainframes at one time or another.

PC machine language compatibility is achieved by using a processor from Intel's x86 family of microprocessors or a clone chip from AMD and others. The x86 machine language dates back to 1981.

Machine language compatibility can also be achieved by emulation. An emulator is software (or hardware or both) that executes the machine language of another computer directly. For example, although Windows was developed for the Intel x86 CPU, it can run in a Mac that uses Apple silicon via emulation. See Apple silicon.

Emulation goes back to the mid-1960s when IBM built a 1401 emulator in its System/360 to ease migration from its very popular 1401 to the new 360 family. The terms emulator and simulator are used interchangeably, unfortunately. See standards.